///////////////////////////////
// Analizador sintáctico XML
///////////////////////////////

parser grammar AnasintXML;

options {
  language = Java;
  tokenVocab = AnalexXML;
}

@header {
  package practpl.seis;
}

@members {
     private ArrayList<RecognitionException> errors = new ArrayList<RecognitionException>();
     public ArrayList<RecognitionException> getErrors() {
        return errors;
     }
     @Override
     public void reportError (RecognitionException e) {
        String msg = getErrorMessage(e, getTokenNames());
        System.err.println(msg);
        errors.add(e);
     }
}

//entrada: biblioteca;
entrada: ABIBLIOTECA (libro)+ CBIBLIOTECA;
libro: ALIBRO (titulo autor editorial)? (ATRIBUTO2)? CLIBRO;
titulo: ATITULO IDENT CTITULO;
autor: AAUTOR IDENT CAUTOR;
editorial: AEDITORIAL IDENT CEDITORIAL;